H ανοιχτότητα στο OpenCouncil και η χρήση του ΑΙ στην ανάπτυξη λογισμικού
Γιατί η ανοιχτότητα ωφελεί τους δήμους συνεργάτες μας, πώς μπορείς να συνεισφέρεις στο OpenCouncil και πώς χρησιμοποιούμε το ΑΙ στο να αναπτύσσουμε λογισμικό
Το OpenCouncil είναι λογισμικό ανοιχτού κώδικα, και σήμερα δημοσιεύουμε τον πηγαίο κώδικα του OpenCouncil στο Github. Σε αυτό το άρθρο, θα εξηγήσουμε το τι σημαίνει αυτό, γιατί είναι σημαντικό και πώς μπορεί κάποιος να συνεισφέρει. Θα μιλήσουμε επίσης για τη χρήση του AI στην ανάπτυξη λογισμικού, όπως τη βιώνουμε ο Ανδρέας και εγώ.
Πριν ξεκινήσουμε, δύο μέρη που μπορείτε να μας βρείτε:
Τι είναι το ανοιχτό λογισμικό;
Το ανοιχτό λογισμικό (open source software) είναι λογισμικό του οποίου ο πηγαίος κώδικας είναι δημόσια διαθέσιμος. Αντίθετα με το ιδιόκτητο λογισμικό, όπου έχεις πρόσβαση μόνο στο τελικό προϊόν χωρίς να ξέρεις πώς λειτουργεί εσωτερικά, το ανοιχτό λογισμικό σου δίνει πλήρη διαφάνεια: μπορείς να δεις τον κώδικα, να τον κατανοήσεις, να τον τροποποιήσεις, αλλά και να τον επαναδιανέμεις ή και να τον χρησιμοποιήσεις εμπορικά.
Αυτή η διαφάνεια επιτρέπει συλλογική ανάπτυξη και βελτίωση: χιλιάδες προγραμματιστές παγκοσμίως μπορούν να συνεισφέρουν στο ίδιο έργο, βρίσκοντας bugs, προσθέτοντας λειτουργίες, ή βελτιστοποιώντας την απόδοση. Το αποτέλεσμα είναι συχνά πιο αξιόπιστο και ασφαλές λογισμικό από ό,τι θα μπορούσε να δημιουργήσει μία εταιρεία μόνη της. Συγκεκριμένα για το OpenCouncil, η ανοιχτότητα έχει σημαντικά οφέλη και μπορεί να προσφέρει σημαντικές εγγυήσεις στους δήμους συνεργάτες μας, όπως θα εξηγήσουμε παρακάτω.
Τα περισσότερα ανοιχτά έργα λογισμικού χρησιμοποιούν συγκεκριμένες άδειες που ορίζουν τους όρους χρήσης. Μία από τις πιο γνωστές είναι η GPL (General Public License), που εφαρμόζουμε και στο OpenCouncil. Η GPL εξασφαλίζει ότι όποιος τροποποιήσει και αναδιανείμει το λογισμικό πρέπει να κάνει και τις δικές του αλλαγές διαθέσιμες με ανοιχτό κώδικα. Αυτό αποτρέπει το "free-riding": κάποιος δεν μπορεί να πάρει το λογισμικό μας, να το βελτιώσει, και να το πουλάει ως κλειστό προϊόν χωρίς να επιστρέψει τις βελτιώσεις που θα κάνει στην κοινότητα.
Το μοντέλο του ανοιχτού λογισμικού δεν είναι καινούριο: μερικά από τα πιο σημαντικά προγράμματα που χρησιμοποιούμε καθημερινά, όπως ο Firefox, το Android, το Linux, και μεγάλο μέρος της υποδομής του διαδικτύου, είναι χτισμένα πάνω σε ανοιχτό κώδικα. Ακόμα και μεγάλες τεχνολογικές εταιρείες όπως η Google, η Microsoft και η Meta συνεισφέρουν ενεργά σε ανοιχτά έργα.
Στην περίπτωση του OpenCouncil, αυτό σημαίνει πλήρη διαφάνεια στον τρόπο λειτουργίας της πλατφόρμας – από τον τρόπο με τον οποίο γίνεται η απομαγνητοφώνηση, μέχρι τη λογική παραγωγής συνόψεων και την εξαγωγή θεμάτων από τις συνεδριάσεις.
H σημασία της ανοιχτότητας
Το OpenCouncil είναι ανοιχτό με δύο σημαντικούς τρόπους: το λογισμικό μας είναι ανοιχτού κώδικα, και τα δεδομένα τα οποία κρατάμε (πλην ευαίσθητων προσωπικών δεδομένων των χρηστών που κάνουν εγγραφή στο OpenCouncil) είναι επίσης ανοιχτά, έχουν δηλαδή ένα ανοιχτό σε όλους API.
Η σημασία του ανοιχτού κώδικα
Το OpenCouncil πωλείται σε δήμους (ο τρόπος που τιμολογούμε είναι δημόσιος και διαθέσιμος σε όλους στο opencouncil.gr/about). Πως μπορεί λοιπόν λογισμικό το οποίο είναι ανοιχτού κώδικα να πωλείται παράλληλα; Συγκεκριμένα, γιατί ένας δήμος να πληρώσει συνδρομή στο OpenCouncil, αφού επιτρέπεται να πάρει τον κώδικα και να στήσει τη πλατφόρμα ο ίδιος, χωρίς να πληρώσει τίποτα;
Το λογισμικό – τουλάχιστον το καλό λογισμικό – εξελίσσεται συνεχώς. Η ανάπτυξη λογισμικού δεν είναι μόνο προγραμματισμός, αλλά συμπεριλαμβάνει πρώτα από όλα το να μιλάς σε χρήστες, να καταλαβαίνεις τις ανάγκες τους, να τις καταγράφεις και να τις προτεραιοποιείς, καθώς και το να να παρέχεις τεχνική υποστήριξη. Σε ένα έργο σαν το OpenCouncil, που πωλείται στο δημόσιο και ασχολείται με τη δημοκρατία στην αυτοδιοίκηση, όλα τα παραπάνω είναι ακόμη πιο σημαντικά.
Όταν ένας δήμος συνεργάζεται με την OpenCouncil, στη πραγματικότητα παίρνει πολλά περισσότερα από το ίδιο το λογισμικό. Η δουλειά μας δεν σταματάει στην ανάπτυξη της πλατφόρμας, αλλά συμπεριλαμβάνει την συνεχή τεχνική υποστήριξη και την ανάπτυξη νέων λειτουργιών σε συνεργασία με το δήμο. Παράλληλα, αναλαμβάνουμε το να μιλήσουμε με αιρετούς, πολίτες και δημοσιογράφους και να προωθήσουμε το έργο μας — θα βρείτε πολλά παραδείγματα στο instagram μας.
Παράλληλα, το να είναι το OpenCouncil ανοιχτό δίνει κάποιες πολύ ισχυρές εγγυήσεις στους δήμους - συνεργάτες μας:
Συνέχεια: Αν η OpenCouncil σαν εταιρεία σταματήσει να υπάρχει μετά από κάποια χρόνια, ο δήμος μπορεί να συνεχίσει τη λειτουργία του OpenCouncil με κάποιο άλλο ανάδοχο, ή υποστηρίζοντας τη λειτουργία του εσωτερικά.
Αποφυγή υπερκοστολόγησης: Κάθε άλλη ιδιωτική εταιρεία έχει κάθε δικαίωμα να πάρει το λογισμικό που φτιάξαμε εμείς και να μας ανταγωνιστεί προσπαθώντας να πουλήσει το OpenCouncil σε δήμους – με μόνη προϋπόθεση όποιες αλλαγές κάνει να είναι δημόσιες και ανοιχτού κώδικα. Αν λοιπόν κάποιος πιστεύει πως υπερχρεώνουμε, έχει όλα τα μέσα για να προσπαθήσει να κάνει αυτό που κάνουμε για λιγότερα χρήματα.
Διαφάνεια: Το OpenCouncil απομαγνητοφωνεί και επεξεργάζεται δηλώσεις αιρετών στα αποφασιστικά όργανα του δήμου, και προσπαθεί να το κάνει με πολιτικά ουδέτερο τρόπο. Ως εκ τούτου, η πλήρης διαφάνεια είναι ο καλύτερος τρόπος με τον οποίο μπορούμε να αποδείξουμε και να εξασφαλίσουμε πως το OpenCouncil είναι πολιτικά ουδέτερο. Για παράδειγμα, αν κάποιος θέλει να δει τον τρόπο με τον οποίο το OpenCouncil παράγει συνόψεις για τα λεγόμενα των δημοτικών συμβούλων, μπορεί να ανοίξει τον κώδικα και να το δει.
Η σημασία των ανοιχτών δεδομένων
Το ΟpenCouncil έχει επίσης και ένα ανοιχτό API: αυτό σημαίνει πως τα δημόσια δεδομένα που υπάρχουν στην βάση δεδομένων του OpenCouncil (π.χ. οι απομαγνητοφωνήσεις, οι συνόψεις, τα θέματα, τα στατιστικά) είναι προσβάσιμα με έναν προκαθορισμένο, δομημένο προγραμματιστικό τρόπο. Έτσι, άλλες εφαρμογές μπορούν να “κουμπώνουν” πάνω στο OpenCouncil και να το επεκτείνουν. Φυσικά, ευαίσθητα προσωπικά δεδομένα χρηστών, όπως τα λίγα στοιχεία που βάζουν οι χρήστες μετά την προαιρετική εγγραφή τους στη πλατφόρμα, δεν γίνονται διαθέσιμα μέσω του API.
Σημειώνουμε εδώ πως το API μας δεν είναι ακόμα πλήρες, ούτε καλά δοκιμασμένο. Αν θέλετε να το χρησιμοποιήσετε για οποιοδήποτε σκοπό, θα ήταν χρήσιμο να το συζητήσουμε πρώτα στο discord (ή να μας στείλετε ένα email στο hello@opencouncil.gr).
Η ανοιχτότητα των δεδομένων δίνει επίσης μια ακόμη σημαντική εγγύηση στους πελάτες μας: πως δεν τους “κλειδώνουμε” στη πλατφόρμα, και μπορούν οποιαδήποτε στιγμή να πάρουν τα δεδομένα που έχουμε παράξει από τις δημόσιες συνεδριάσεις τους (κάτι για το οποίο έχουν πληρώσει) και να τα κάνουν ό,τι θέλουν.
Πώς μπορείς να συνεισφέρεις;
Αν είσαι προγραμματιστής, μπορείς να ρίξεις μια ματιά στον κώδικα μας στο GitHub. Έχουμε φροντίσει ώστε να είναι εξαιρετικά απλό να τρέξεις το OpenCouncil τοπικά (απλώς ./run.sh
). Ο πιο εύκολος τρόπος για να ξεκινήσεις να συνεισφέρεις είναι να δεις τα issues που έχουμε ανοιχτά — εκεί μπορείς να βρεις σημεία που χρειάζονται διόρθωση ή λειτουργίες που θέλουμε να προσθέσουμε.
Αν ασχολείσαι με το design (UX/UI), η συμβολή σου θα ήταν πραγματικά πολύτιμη. Ούτε εγώ, ούτε ο Ανδρέας έχουμε σχεδιαστικές γνώσεις και ό,τι βλέπετε στην πλατφόρμα το έχουμε φτιάξει μόνοι μας (πάντα παρέα με το AI). Είμαστε σίγουροι ότι υπάρχουν τεράστια περιθώρια βελτίωσης. Κάθε πρόταση, από μια μικρή αλλαγή σε ένα κουμπί μέχρι μια συνολική ιδέα για τη ροή του χρήστη, θα μας βοηθούσε πάρα πολύ να κάνουμε το OpenCouncil πιο όμορφο και εύχρηστο.
Αν απλώς σε ενδιαφέρει η διαφάνεια στην τοπική αυτοδιοίκηση, η γνώμη σου είναι πολύτιμη. Χρησιμοποίησε την πλατφόρμα, δες τις συνεδριάσεις του δήμου σου και στείλε μας τις παρατηρήσεις σου. Τι σου άρεσε; Τι σε δυσκόλεψε; Ποια λειτουργία πιστεύεις ότι λείπει; Επιπλέον, μπορείς να μας βοηθήσεις να δείξουμε στον δήμο σου ότι υπάρχει ενδιαφέρον, υπογράφοντας στο opencouncil.gr/petition (αυτή είναι μια καινούργια λειτουργία που δεν έχουμε προωθήσει ακόμη).
Κάθε συνεισφορά, μικρή ή μεγάλη, είναι πολύτιμη. Αν θέλεις να συζητήσεις οτιδήποτε, ο καλύτερος τρόπος είναι να μας βρεις στο Discord — μπορείς επίσης να μας πάρεις ένα τηλέφωνο στο +30 2111980212.
Πώς το ΑΙ γράφει κώδικα για εμάς
Μιλώντας για την τεχνική ανάπτυξη του OpenCouncil, δε μπορούμε παρά να κάνουμε μια σύντομη αναφορά στο πόσο δραστικά αλλάζει ο τρόπος που γράφουμε κώδικα καθημερινά. Η αφορμή για αυτή την αναφορά ήρθε την προηγούμενη εβδομάδα, όταν ο Ανδρέας έλαβε ένα email που τον προσκαλούσε σε ένα event του Cursor στην Αθήνα, καθώς βρισκόταν στο “top 1% των χρηστών του Cursor στην Αθήνα” (🎉).
Για όσους (ακόμα) δεν ασχολούνται με το αντικείμενο, σκεφτείτε εργαλεία όπως το Cursor και το Cline ως εξής: σου επιτρέπουν να περιγράφεις αυτό που θέλεις να πετύχεις σε απλά Αγγλικά, και σε μεγάλο βαθμό, γράφουν τον κώδικα για σένα. Αυτή η νέα γενιά εργαλείων έχει αλλάξει ριζικά την καθημερινότητά μας ως μηχανικοί λογισμικού.
Αυτό, βέβαια, δεν σημαίνει ότι πατάμε πάντα ένα κουμπί και ο κώδικας γράφεται από μόνος του. Στην πράξη, λειτουργεί περισσότερο σαν ένας εξαιρετικά γρήγορος και ακούραστος (junior) προγραμματιστής: του ζητάμε να υλοποιήσει λειτουργίες, να γράψει tests (κώδικας που τεστάρει αυτόματα άλλο κώδικα), να εντοπίσει λάθη, να λύσει προβλήματα, να προτείνει βελτιστοποιήσεις, να δημιουργήσει documentation, ακόμα και να γράψει ένα καλό commit message ή PR description για τις αλλαγές που κάναμε.
Αυτή η νέα συνθήκη αναβαθμίζει αυτόματα και τη σημασία του documentation. Ένα καλό documentation παρέχει το απαραίτητο πλαίσιο (context) στα LLMs για να παράγουν πιο εύστοχο κώδικα, ενώ ταυτόχρονα λειτουργεί ως ο πρακτικός οδηγός για κάθε νέο contributor. Ουσιαστικά, εξελίσσεται στο κοινό σημείο αναφοράς (source of truth) που διαβάζουν τόσο οι άνθρωποι για να συνεισφέρουν, όσο και το AI για να γράψει κώδικα. Γι’ αυτό και του δίνουμε απόλυτη προτεραιότητα.
Για μια μικρή ομάδα δύο ατόμων, αυτή η ενίσχυση της παραγωγικότητας είναι καθοριστική. Μας επιτρέπει να χτίζουμε και να συντηρούμε μια πολύπλοκη πλατφόρμα όπως το OpenCouncil σε ταχύτητες που μέχρι πριν λίγα χρόνια θα φάνταζαν αδιανόητες, ελευθερώνοντας χρόνο για να εστιάσουμε σε αυτά που έχουν πραγματικά σημασία: την κατανόηση των αναγκών των δήμων και των πολιτών και την ουσιαστική βελτίωση της πλατφόρμας.
Σε άλλα νέα…
Το τελευταίο καιρό ταξιδέψαμε αρκετά, τόσο στα Χανιά, όσο και σε άλλους δήμους στην Ελλάδα, δείχνοντας το OpenCouncil σε δήμους. Παράλληλα, φτιάχνουμε αρκετά πράγματα στο OpenCouncil ενώ προσπαθούμε να ισορροπήσουμε τη δουλειά που βάζουμε στο product, με το outreach σε πολίτες και τις προσπάθειές μας στα sales. Θα προσπαθήσουμε να γράφουμε πιο συχνά εδώ — περισσότερα σύντομα. Μέχρι τότε, ακολουθήστε μας στο instagram.